Skip to content

setup: Replace directory-level install with per-asset merge-aware install - #180

Open
davidabram wants to merge 1 commit into
mainfrom
non-desctructive-setup
Open

setup: Replace directory-level install with per-asset merge-aware install#180
davidabram wants to merge 1 commit into
mainfrom
non-desctructive-setup

Conversation

@davidabram

Copy link
Copy Markdown
Member

No description provided.

@davidabram
davidabram force-pushed the non-desctructive-setup branch from b08af36 to 1c043e9 Compare August 4, 2026 08:58
Base automatically changed from normalize-skills to main August 4, 2026 10:47
@davidabram
davidabram force-pushed the non-desctructive-setup branch from 1c043e9 to 21393a1 Compare August 4, 2026 14:05
…tall

sce setup previously staged the full catalog into a temp directory and
swapped it over the whole .claude/, .opencode/, or .pi/ target directory,
destroying any user-owned files (skills, settings.local.json, CLAUDE.md,
etc.) living alongside SCE's own assets. The two generated JSON configs
(.claude/settings.json, .opencode/opencode.json) had the same problem one
level down: written whole, they clobbered a user's permissions, env,
model, mcp, or non-SCE hook/plugin entries.

Installation now happens per asset: each embedded file is staged and
atomically renamed into place individually, and assets the current
selection or catalog no longer owns are pruned by relative path instead
of the whole directory being rebuilt. The two config files are merged
via a new config_merge module that replaces only the SCE-owned fragment
(hook entries by marker, plugin paths by prefix) and leaves every other
key and entry untouched, idempotently across repeated installs.

sce doctor's integration inspection is updated to match: the two
merge-target configs are checked by whether their SCE-owned fragment is
current rather than by byte-exact sha256, and `--fix` gained a repair
path that reinstalls just a drifted merge-target asset.

Co-authored-by: SCE <sce@crocoder.dev>
@davidabram
davidabram force-pushed the non-desctructive-setup branch from 1c043e9 to c4efb12 Compare August 4, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant